1. Technical Field
This invention relates to communication protocols for modems and other communication devices and, more specifically, to systems and methods for implementing a low latency, high throughput communication protocol for direct modem-to-modem communication over telephone lines, internet communication, and other communication systems.
2. State of the Art
As shown in FIG. 1, a representative system 10 for transmitting data between computers includes a transmitting modem 12 that modulates data from a transmitting computer 14 and transmits the modulated data over a telephone system 16. A receiving modem 18 then receives and demodulates the modulated data for use by a receiving computer 20.
The performance of the representative data transmission system 10 can be characterized in terms of throughput, latency, and jitter. "Throughput" means the amount of data transmitted by the transmitting computer 14 during a given length of time. "Latency" means the amount of time it takes a portion of data (generally referred to as a "packet") transmitted by the transmitting computer 14 to reach the receiving computer 20. Further, "jitter" refers to the variation in latency, if any, occurring during the transmission and subsequent reception of a data packet.
In non-real-time applications, the most important performance characteristic for the data transmission system 10 is usually throughput. Thus, for example, when transmitting and receiving a facsimile via the system 10, the primary emphasis is placed on minimizing the total amount of time it takes to transmit the facsimile (i.e., maximizing throughput), with little or no emphasis being placed on minimizing the time it takes to transmit and receive the individual data packets that make up the facsimile (i.e., latency), or on minimizing variations in the time it takes to transmit and receive one data packet versus another (i. e., jitter).
In contrast, while real-time applications tend to place the same emphasis on maximizing throughput, they also typically place emphasis on minimizing jitter and latency. Consider, for example, a real-time audio transmission via the system 10. Bob speaks into a microphone (not shown) connected to the transmitting computer 14 and, after a certain transmission delay associated with the system 10, Mary hears Bob's voice coming out of a speaker (not shown) connected to the receiving computer 20. To hear Bob's voice in as "real" a manner as possible, Mary is not just concerned with minimizing the amount of time it takes the transmitting computer 14 to transmit Bob's voice (i.e., maximizing throughput): Mary is also concerned with minimizing jitter, because excessive jitter can cause the pitch at which Mary hears Bob's voice to vary noticeably and unnaturally, much like the pitch of music from a phonograph varies unnaturally if the phonograph's turntable varies between too slow and too fast. Also, if the transmission described is a two-way transmission such that Mary can also speak to Bob, then both Mary and Bob are also concerned with minimizing latency, because excessive latency will cause an unnatural delay for both Bob and Mary between statements they make and responses they receive to those statements.
Accordingly, at least three conventional communication protocols have been developed to address the need for low jitter and low latency in such real-time applications.
The first protocol, referred to as the "H.324 multimedia communication standard," suggests turning off the error correction and data compression hardware features in modern modems in order to eliminate the delays associated with those features. Unfortunately, turning these hardware features off necessitates implementing the same features in software, which creates a heavy computational burden for a computer processor. In addition, removing hardware error correction and data compression requires that start and stop bits be added to the data stream transmitted by a modem, thereby reducing the throughput of the modem by at least 20%.
The second protocol, referred to as the "V.80 standard," suggests a system in which the transmitting computer 14 polls the transmitting modem 12 to determine the amount of unsent data residing in the internal buffers of the modem 12. The transmitting computer 14 then controls the maximum threshold of the internal buffers (i.e., the maximum amount of unsent data allowed in the buffers) accordingly. While the V.80 standard does control latency in the transmitting modem 12 by controlling the maximum threshold of the internal buffers of the modem 12, it does not take into account the need to control latency associated with buffers in the computer operating systems of the transmitting and receiving computers 14 and 20, or the need to control latency associated with buffers in the telephone system 16. The V.80 standard also suffers from its need to be implemented in hardware, which means that it cannot be added to the vast majority of modems currently in use.
The need for low jitter and low latency also arises when considering real-time applications over the internet. The third protocol, referred to as the "H.323 standard," has been developed to address low latency communication over the internet. This standard proposes the use of another protocol, the User Datagram Protocol (UDP), for real-time communications over the internet in place of the more commonly used Transmission Control Protocol (TCP). The H.323 standard proposes use of the UDP for real-time applications instead of the TCP because the UDP eliminates acknowledgment transmissions from a receiver back to a transmitter that are required by the TCP, thereby reducing congestion and accelerating the transmission of real-time data from transmitter to receiver. Unfortunately, one of the requirements of many real-time applications is guaranteed delivery of transmitted data, so the lack of acknowledgment transmissions in the UDP makes it an unreliable choice for internet-based real-time applications because the delivery of transmitted data cannot be guaranteed without acknowledgments. Therefore, there is a need in the art for a system and method for low latency communication over modems, the internet, and similar communication systems. Such a system and method should avoid the problems associated with the H.323, H.324, and V.80 standards described above.